/**
 * 角色数据访问层接口
 * 
 * 功能说明：
 * - 提供角色相关的数据库操作接口
 * - 继承JpaRepository，获得基本的CRUD操作能力
 * - 提供根据角色名称查询角色的方法
 * 
 * 查询方法说明：
 * - findByName：根据角色名称查询角色信息
 * 
 * 设计原则：
 * - 返回Optional类型，避免null指针异常
 * - 使用方法名派生查询，遵循Spring Data JPA规范
 * 
 * 使用场景：
 * - 角色管理：查询角色详细信息
 * - 权限分配：为用户分配角色时获取角色对象
 * - 权限验证：根据角色名称获取角色信息进行权限判断
 * 
 * @author eCommerce Team
 * @version 1.0
 */
package com.ecommerce.auth.repository;

import com.ecommerce.auth.entity.Role;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.Optional;

/**
 * 角色数据访问层接口
 * 提供角色相关的数据库操作和查询方法
 */
@Repository
public interface RoleRepository extends JpaRepository<Role, Long> {

    /**
     * 根据角色名称查询角色
     * 
     * @param name 角色名称（不区分大小写）
     * @return 包含角色的Optional对象，如果未找到则返回Optional.empty()
     */
    Optional<Role> findByName(String name);
}